#region Using References

using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Beaker.OpenCube.Metadata.TypeConverters;
using Newtonsoft.Json;

#endregion

namespace Beaker.OpenCube.Metadata
{
	[DataContract]
	public class ProfilesMetadata
	{
		[DataMember( Name = "profiles" )]
		[JsonConverter( typeof( NamedMetadataDictionaryConverter<ProfileConfigurationMetadata> ) )]
		public Dictionary<string, ProfileConfigurationMetadata> Profiles { get; set; }

		[DataMember( Name = "selectedProfile" )]
		public string SelectedProfileName { get; set; }

		[DataMember( Name = "clientToken" )]
		public Guid ClientToken { get; set; }

		[DataMember( Name = "authenticationDatabase" )]
		[JsonConverter( typeof( KeyedMetadataDictionaryConverter<Guid, AuthenticationMetadata, UuidConverter> ) )]
		public KeyedMetadataDictionary<Guid, AuthenticationMetadata> AuthenticationDatabase { get; set; }
	}
}